home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
amok_lha
/
amok80.lha
/
CheckCaps
/
CheckCaps.mod
< prev
next >
Wrap
Text File
|
1993-08-15
|
2KB
|
58 lines
(*---------------------------------------------------------------------------
:Program. CheckCaps.mod
:Contents. Returns WARN, if CapsLock is on, useful for scripts
:Author. Christian Stiens
:Address. Snail-Mail: E-Mail:
:Address. Heustiege 2 UUCP: Christian_Stiens@ouzonix.bo.open.de
:Address. W-4710 Lüdinghausen FIDO: 2:241/5807
:Copyright. public domain
:Language. Oberon-2
:Translator. Amiga Oberon V2.42d (innofficial beta version)
:History. V1.0, 06-Oct-92
:Imports. DeviceSupport
---------------------------------------------------------------------------*)
MODULE CheckCaps;
IMPORT
d: Dos, ds: DeviceSupport, e: Exec, k: Keyboard, ol: OberonLib, y: SYSTEM;
CONST
version = "\o$VER: checkcaps 1.0 (6.10.92)\n\r";
VAR
req : e.IOStdReqPtr;
matrix : ARRAY 13 OF SHORTSET;
out : d.FileHandlePtr;
dummy : LONGINT;
BEGIN
dummy := y.ADR(version);
IF ol.wbStarted THEN out := d.Open("CON:0/50/640/100/CheckCaps",d.newFile)
ELSE out := d.Output() END;
IF out = NIL THEN HALT(20) END;
req := ds.OpenDev(k.keyboardName,0,LONGSET{},0,NIL);
IF req = NIL THEN HALT(20) END;
req.data := y.ADR(matrix);
req.length := 13;
ds.DoCommand(req,k.readMatrix);
IF 2 IN matrix[12] THEN
dummy := d.Write(out,"Caps Lock on\n",13);
HALT(d.warn);
ELSE
dummy := d.Write(out,"Caps Lock off\n",14);
END;
CLOSE
IF req#NIL THEN ds.CloseDev(req) END;
IF ol.wbStarted & (out#NIL) THEN d.Delay(50); d.OldClose(out) END;
END CheckCaps.